package com.ruoyi.evalution.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.labdata.domain.LabFile;
import com.ruoyi.labdata.domain.LabFlowInstance;

/**
 * 实验室评测对象 lab_evalution
 * 
 * @author winner pan
 * @date 2022-04-15
 */
public class LabEvalution extends LabFlowInstance  {
	private static final long serialVersionUID = 1L;
	
	/**
	 * 料单维修业务类型.
	 */
	private static final String businessTypeOpt = "labEvalution";
	
	public LabEvalution(){
		super.setBusinessTypeOpt(businessTypeOpt);
	}
	/** 名称 */
	@Excel(name = "名称")
	private String evalutionName;

	/** 评测开始期间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "评测开始期间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date durationBegin;

	/** 评测结束期间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "评测结束期间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date durationEnd;

	/** 评测开始时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "评测开始时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date evalutionStart;

	/** 评测结束时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "评测结束时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date evalutionEnd;

	/** 述职开始时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date reportStart;

	/** 述职结束时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date reportEnd;

	/** 备注说明 */
	@Excel(name = "备注说明")
	private String mark;
	
	private String status;

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	/** 创建时间 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
	private Date createTime;
	
	private List<LabFile> images;
	
	private List<LabEvalutionUser> userList;
	
	private List<LabEvalutionTarget> targetList;
	
	public List<LabEvalutionUser> getUserList() {
		return userList;
	}

	public void setUserList(List<LabEvalutionUser> userList) {
		this.userList = userList;
	}

	public List<LabEvalutionTarget> getTargetList() {
		return targetList;
	}

	public void setTargetList(List<LabEvalutionTarget> targetList) {
		this.targetList = targetList;
	}

	public List<LabFile> getImages() {
		return images;
	}

	public void setImages(List<LabFile> images) {
		this.images = images;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}


	public void setEvalutionName(String evalutionName) {
		this.evalutionName = evalutionName;
		if(super.getFlowName()==null){
			super.setFlowName(evalutionName);
		}
	}

	public String getEvalutionName() {
		return evalutionName;
	}

	public void setDurationBegin(Date durationBegin) {
		this.durationBegin = durationBegin;
	}

	public Date getDurationBegin() {
		return durationBegin;
	}

	public void setDurationEnd(Date durationEnd) {
		this.durationEnd = durationEnd;
	}

	public Date getDurationEnd() {
		return durationEnd;
	}

	public void setEvalutionStart(Date evalutionStart) {
		this.evalutionStart = evalutionStart;
	}

	public Date getEvalutionStart() {
		return evalutionStart;
	}

	public void setEvalutionEnd(Date evalutionEnd) {
		this.evalutionEnd = evalutionEnd;
	}

	public Date getEvalutionEnd() {
		return evalutionEnd;
	}

	public void setReportStart(Date reportStart) {
		this.reportStart = reportStart;
	}

	public Date getReportStart() {
		return reportStart;
	}

	public void setReportEnd(Date reportEnd) {
		this.reportEnd = reportEnd;
	}

	public Date getReportEnd() {
		return reportEnd;
	}

	public void setMark(String mark) {
		this.mark = mark;
	}

	public String getMark() {
		return mark;
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("instanceId", getInstanceId())
				.append("evalutionName", getEvalutionName()).append("durationBegin", getDurationBegin())
				.append("durationEnd", getDurationEnd()).append("evalutionStart", getEvalutionStart())
				.append("evalutionEnd", getEvalutionEnd()).append("reportStart", getReportStart())
				.append("reportEnd", getReportEnd()).append("mark", getMark())
				.append("createBy", getCreateBy()).toString();
	}
}
